Image based touchscreen device

ABSTRACT

An improved auxiliary input device for use with various computer applications which is more versatile and easier to use than prior devices. A touchscreen device is used to provide easier inputs to the computer applications. The layout of the touchscreen display may be customized using layout software that maps visual indicators on the touchscreen to user-defined key sequences, mouse events, external calling of Dynamic Link Libraries, URL links, or other miscellaneous actions. Control software runs in the background for loading the saved layout configurations and executing the user-defined key sequences or mouse events whenever the touchscreen is touched by the user. The control software can be configured to automatically load layouts based on the active program or game being played. The touchscreen configuration for each game may be programmed with bitmaps and key sequences and then stored for later retrieval. In order to provide rapid retrieval of a configuration, the touchscreen device is connected to the system through the USB port rather than the keyboard port. Once a layout is loaded onto the touchscreen display, the input device senses pressure on the integral touchscreen. Whenever pressure is sensed, the touchscreen display sends a signal back to the computer through the USB port, and the computer microprocessor executes the key sequence or other command associated with the location on the touchscreen that was pressed. Each location or area on the touchscreen is mapped to an entry in the user-defined table created using the layout editor.

RELATED APPLICATIONS

This application claims the benefit, under 35 U.S.C. §119(e)(1), of U.S.Provisional application Serial No. 60/203,251, filed May 8, 2000, whichis incorporated herein by this reference.

BACKGROUND OF THE INVENTION

1. Technical Field

The present invention relates to a touchscreen controller, and moreparticularly to a touchscreen controller to be used for computerapplication programs wherein the touchscreen controller may beprogrammed to create custom layouts for the application programs.

2. Description of the Related Art

Computer games have become increasingly popular in recent years ascomputer technology has advanced to provide realistic gamingenvironments. Many of these games implement keyboard macros to enablethe user to control the particular game being played. In order to makethe games more user friendly, and easier to learn, additional inputdevices dedicated to a particular game have been developed to enable theuser to simply push a button in order to run the macro that would taketwo or three or more keyboard strokes to run. For example, a joystickand throttle combination may be used with a flight simulator to helpeliminate keyboard inputs. Other input devices may be used to providededicated buttons for a game. These input devices are sometimesprogrammable and usually require different overlay cards depending onthe game being played. Presently, these programmable input devicesconnect inline with the keyboard and allow the user to program thebuttons on the device to represent a particular keyboard sequenceassociated with a command for a game. The overlay card then indicates tothe user what particular function a particular button on the inputdevice performs. The overlay card may be created in conjunction with theprogramming of the device and simply printed to allow the user toprogram the input device for any game requiring keyboard inputs.

One of the problems with current auxiliary input devices such as thosedescribed above is that a new overlay must be created for each game andthe overlay must be removed and replaced with a new game when the userdecides to play another game. Another problem is that the input devicemust be manually configured by the user to change between games. Itwould be desirable for the input device to be more easily adaptable andversatile for the various games or other applications on the computer.In particular, an improved input device would not require an overlaycard which must be changed every time a new application is started. Inaddition, the improved device may be set up to automatically change itsconfiguration whenever the active application being used on the PC ischanged.

SUMMARY OF THE INVENTION

The present invention provides an improved auxiliary input device foruse with various computer applications which is more versatile andeasier to use than prior devices. A touchscreen device is used toprovide easier inputs to the computer applications. The layout of thetouchscreen display may be customized using layout software that mapsvisual indicators on the touchscreen to user-defined key sequences,mouse events, external calling of Dynamic Link Libraries, URL links, orother miscellaneous actions. Control software runs in the background forloading the saved layout configurations and executing the user-definedkey sequences or mouse events whenever the touchscreen is touched by theuser. The control software can be configured to automatically loadlayouts based on the active program or game being played. Thetouchscreen configuration for each game may be programmed with bitmapsand key sequences and then stored for later retrieval. In order toprovide rapid retrieval of a configuration, the touchscreen device isconnected to the system through the USB port rather than the keyboardport. Once a layout is loaded onto the touchscreen display, the inputdevice senses pressure on the integral touchscreen. Whenever pressure issensed, the touchscreen display sends a signal back to the computerthrough the USB port, and the computer microprocessor executes the keysequence or other command associated with the location on thetouchscreen that was pressed. Each location or area on the touchscreenis mapped to an entry in the user-defined table created using the layouteditor.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an embodiment of the present invention.

FIG. 2 is a flowchart of the control software according to an embodimentof the present invention.

FIG. 3 is a flowchart of the layout software in accordance with anembodiment of the present invention.

FIG. 4 is a pictorial representation of an input device in accordancewith an embodiment of the present invention.

FIG. 5 is a screen shot of a layout editor in accordance with anembodiment of the invention.

FIG. 6 is a screen shot of a screen for inserting and customizing abitmap in accordance with an embodiment of the invention.

FIG. 7 is a screen shot of a screen for customizing the mouse pad areain accordance with an embodiment of the invention.

FIG. 8 is a screen shot of a screen for macro setup in accordance withan embodiment of the invention.

FIG. 9 is a screen shot of the action properties setup for a Delayaction in accordance with an embodiment of the present invention.

FIG. 10 is a screen shot of the action properties for a DLLCall actionin accordance with an embodiment of the present invention.

FIG. 11 is a screen shot of the action properties for an EnterStringaction in accordance with an embodiment of the present invention.

FIG. 12 is a screen shot of the action properties for the Keyboardaction in accordance with an embodiment of the present invention.

FIG. 13 is a screen shot of the action properties for the LoadLayoutaction in accordance with an embodiment of the present invention.

FIG. 14 is a screen shot of the action properties for a Mouse action inaccordance with an embodiment of the present invention.

FIG. 15 is a screen shot of the setup window for the game controller inaccordance with an embodiment of the present invention.

FIG. 16 is a screen shot of the options available for the controlsoftware in accordance with an embodiment of the present invention.

DETAILED DESCRIPTION

Referring now to FIG. 1, a block diagram of an embodiment of the presentinvention is illustrated. The game controller 105 is connected to theUniform Ser. Bus (USB) of a personal computer (PC) 110 using a serialcable 115. The game controller 105 comprises a microcontroller 120 forinterfacing with the PC 110 to load the images from a layout file intothe game controller 105 and to transmit inputs to the PC 110. Themicrocontroller 120 is connected to a touchscreen overlay 125 through atouchscreen interface 130. The touchscreen overlay 125 could be apassive resistive touch sensitive panel or any touchscreen devicecommonly known in the art. In a preferred embodiment, the touchscreenoverlay 125 is integrally connected to the Liquid Crystal Display (LCD)135. An LCD video driver 140 is connected between the microcontroller120 and the LCD 135. A video memory device 145 is connected to the LCDvideo driver 140.

In a typical operating mode, the PC 110 is booted up by the user andautomatically runs the control software for the game controller 105. Thecontrol software is responsible for loading the appropriate layout fileinto the game controller 105 whenever a game or application is startedby the user. The layout file for a particular game may be created andloaded manually by the user or the control software can be set to load apreviously created layout file automatically whenever a particular gameor application is started. The images from the layout file aredownloaded to the microcontroller 120 via the serial cable 115. Themicrocontroller 120 displays the images on the LCD 135. Once the imagesare displayed, the microcontroller awaits a user input through thetouchscreen overlay 125. Whenever a touchscreen input is received, themicrocontroller 120 sends the input to the PC 110 which retrieves theuser-defined action associated with that input from a table in thelayout file. Once retrieved, the PC 110 performs the user-definedaction.

Referring now to FIG. 2, a flowchart of the control software accordingto an embodiment of the present invention is illustrated. The controlsoftware is started at step 200 either automatically through the startupmenu when the PC is booted up or manually when the user runs theprogram. At step 205 the layout file associated with the particular gamebeing played is retrieved from storage on the PC. If there is no layoutfile available for the game, then a default layout file is retrieved.Once retrieved, the images associated with the layout file are displayedon the game controller LCD at step 210. When the images are loaded anddisplayed on the input device, the device is ready for inputs from theuser. The integral touchscreen overlay on the LCD senses inputs from theuser at step 215. Once an input is received at step 220, themicrocontroller sends the location and type of touchscreen input to thePC via the USB and the PC retrieves the user-defined action associatedwith that input from a table in the layout file at step 225. Theuser-defined action is then executed by the PC at step 230. Depending onthe manner in which the layout file is setup by the user, a user-definedaction could be a keyboard input, a mouse input, an external call of aDynamic Link Library (DLL), the opening of a Uniform Resource Locator(URL) or any other action that can be performed by the computer. Duringthe time that the control software is running, the active game orapplication may be changed by the user. The software monitors for such achange at step 235 and can be set to automatically retrieve a differentlayout file by returning to step 205 when the user changes games.Furthermore, the user may choose to modify the layout file for a gamewhile the game is being played. Whenever a layout file is changed atstep 240, then the control software returns to step 205 to retrieve thenewly modified file at step 205. The control software continues tooperate in this manner until the computer is shut down or the program isclosed down at step 245.

Referring now to FIG. 3, a flowchart of the layout software inaccordance with an embodiment of the present invention is illustrated.The layout software is used to create and/or modify the layout files tobe used with various games or applications. The user can manually openthe layout software whenever a layout file needs to be created ormodified. When the layout software begins running, a layout editor isdisplayed on the PC monitor at step 305. The layout editor contains awindow that represents the boundaries of the LCD on which the imageswithin the window will be displayed when the layout file is loaded. Theuser is allowed to input different images into the window and, ifdesired, associate these images with a user-defined action at step 310.This process is repeated until the layout is complete at step 315. Theuser saves the layout file at step 320 so that it can later be loaded bythe control software.

Referring now to FIG. 4, a pictorial representation of an input devicein accordance with an embodiment of the present invention isillustrated. The game controller 105 contains a stand 405 that isadjustable for different viewing angles. For example, the stand can beadjusted such that the screen has a 21, 28, or 35 degree angle relativeto the surface on which the game controller is placed. The gamecontroller 105 contains a 320 by 240 color LCD 410 for displaying theimages stored in a layout file. FIG. 4 shows the game controller 105with a layout file loaded which is configured for buying items in thegame Counter-Strike/Half-Life. The passive resistive touch sensitivepanel 125 shown in FIG. 1 is integrated with LCD 410 such that the usermay simply touch the screen to purchase a Kevlar vest, a helmet, or anyof the weapons pictured on the LCD. This is merely an example of themany possible uses of the game controller 105. The game controller 105can be used with most windows-based games and applications and the usercan configure any graphics and key sequences for use with individualgames or other utilities. In the example shown in FIG. 4, the variousimages are arranged in a custom layout file that includes a table thatassociates key sequences or other user-defined actions with theactivation of a particular area on the layout. The images are sent tothe game controller 105 through a full speed USB bus when a layout fileis loaded by the control software. Each individual image is displayed onthe active matrix display and the game controller senses pressure on thetouchscreen. These touchscreen presses are then sent back to thecomputer which then executes the list of commands specified by theuser-defined table in the layout editor. The height, width, and depth ofthe game controller 105 for a preferred embodiment are 152 mm, 191 mm,and 38 mm, respectively.

Referring now to FIG. 5, a screen shot of a layout editor in accordancewith an embodiment of the invention is illustrated. When the user runsthe layout software described with reference to FIG. 3, the layouteditor appears on the PC monitor as shown in FIG. 5. Once the layouteditor is activated, the user may create a new file or open an existingfile using the pull down File menu 505. The window area 510 representsthe boundaries of the LCD display on the game controller 105. The usermay insert images into the window 510. The images are defined by aboundary and will represent an area on the touchscreen device which isassociated with a particular action that is defined by the user duringthe creation of the layout. To insert items into the window 510, theuser selects the pull down Insert menu 515. There are three types ofitems that can be placed on a layout. First, a bitmap can be inserted. Abitmap is a picture that has no actions associated with it and is usefulfor background art or visual indicators. Secondly, a mouse pad area canbe inserted into the layout. A mouse pad area is used for feeding mouseinputs into the operating system of the PC as if the actual mouse werebeing used. Finally, a macro can be inserted into the layout andcustomized to perform a specific set of actions whenever the macro isactivated. The macro can also have a picture associated with it as isillustrated on the LCD 410 in FIG. 4. Whenever the user selects insertbitmap from the pull down Insert menu 515, a bitmap setup screen asshown in FIG. 6 is displayed.

Referring now to FIG. 6, a screen shot of the screen for inserting andcustomizing a bitmap in accordance with an embodiment of the presentinvention is illustrated. A bitmap defines an area on the layout thatwould display the specified picture. Multiple types of items can havebitmaps as background to highlight the active area such as macros andmouse pads. Other types of images can be imported by using a differentprogram to save the images as a bitmap file prior to attempting toinsert the picture. The location block 605 displays the location of thebitmap file. If the file was imported, this path represents from wherethe file was imported. If the file is linked, then this path representswhere the file will be read from when the layout is downloaded to thecontroller. The size block 610 displays the dimensions of the bitmap.The bitmap can be resized in the layout editor but the full bitmap isstored internally. This size represents the original size of the bitmap.The file status block 615 displays “imported” for bitmap files that arefully contained within the layout. For bitmap files that are linked,then “yes” is displayed in the status block 615. The user may click theImport a bitmap button 620 to import a bitmap to be displayed in thelayout. An imported bitmap means that the image data is stored as partof the layout file. An imported bitmap is useful because once the imagedata is imported, the external file is no longer needed and the layoutis self-contained. To save disk space, the user may choose to link thefile by clicking the Link to an external bitmap button 625. All linkedbitmap files must be available whenever the layout is used. A linkedbitmap file is useful when there is a common bitmap used in multiplelayouts. Because the image data is stored externally, only one imageneeds to be updated to update all layouts. The bitmap properties mayalso be such that a certain color in the bitmap is transparent and willnot hide any colors behind the bitmap. If the None option 630 isselected, there is no transparent color for the bitmap and all of thebitmap colors will be displayed. If the Use first pixel option 635 isselected, then the first color in the bitmap will be the transparentcolor. Therefore, any color in the bitmap that is the same as the firstpixel will be transparent. The first pixel is in the upper left handcorner of the bitmap. The user can also select the Specify color option640 to specify the transparent color directly. Once the bitmapproperties are set up, the user clicks the OK button 645 to insert thebitmap onto the layout editor shown in FIG. 5. The user can move thebitmap around or resize it within the layout editor.

Referring now to FIG. 7, a screen shot for customizing the mouse padarea in accordance with an embodiment of the invention is illustrated. A“mouse pad” allows an area on the touchscreen display to behave like amouse. Touching and moving a finger across the mouse pad area moves themouse cursor on the screen of the PC. A mouse pad is useful to controlthe main system cursor or for moving around in a game. The mouse pad canbe set to either an absolute mode or a relative mode. If the Absoluteoption 705 is selected, then the mouse pad area represents a miniatureversion of the computer screen. This means that touching the upper lefthand corner of the area will move the main cursor to the upper leftcorner of the screen and similarly for any other area of the mouse pad.If the Relative option 710 is selected by the user, then each pixelworth of movement on the controller will map to that much movement ofthe main system cursor. Relative mode is like using a real mouse on amouse pad. A bitmap may also be associated with the mouse pad area byclicking on the Bitmap button 715 to display the bitmap set-up screenillustrated in FIG. 6. The user clicks the OK button 720 to insert themouse pad area onto the layout editor and further change the position orsize of the mouse pad.

Referring now to FIG. 8, a screen shot of the screen for macro setup inaccordance with an embodiment of the invention is illustrated. Wheneverthe user selects insert a macro from the pulldown Insert menu 515 shownon the layout editor of FIG. 5, the macro setup screen of FIG. 8 isdisplayed. A “macro” is a list of actions to perform when a touch oruntouch event is received from the game controller 105 for the boundingregion of the item in the layout. A touch event is received when thescreen is first touched. An untouch event is received when the screenpress is released. Each event can have its own list of actions toperform. Several actions can be performed using a macro. These includethe delay action 805 which pauses playback of a list items for aspecified amount of time. This is useful for putting in delays forprocessing time or if the game or application cannot receive the actiontoo quickly. A DLLCall action 810 is used to execute a call to anexternal dynamic link library (DLL). The EnterString action 815 is usedto enter an entire string as if it were typed on the keyboard of the PC.This saves the effort of creating a key press/release for eachcharacter. A Keyboard action 820 is used to simulate a key press orrelease. This is useful for mapping game keyboard commands to a graphicshot spot on the controller. A LoadLayout action 825 is used to implementa multi-page setup by loading or activating another layout. This canalso be used to implement a menu system on the controller. A Mouseaction 830 is used to simulate a mouse event. Either a mouse buttonpress/release or a mouse movement can be simulated. This is useful forautomating repetitive sequences. Clicking the On touch button 835,displays the actions to be executed upon a touch of the particular macroarea. Clicking the On release button 840 displays the actions executedupon a release or untouch of the macro area. Clicking the Up button 845moves the selected action up in the list while clicking the Down button850 moves the selected action down in the list. Clicking the Edit button855 allows the selected action to be edited. Double-clicking on anaction in the list accomplishes the same thing. Clicking the Del button860 removes the selected action from the action list. The Add to listbutton 865 is used to add one of the available actions on the left tothe action list on the right. Actions in the list will be executed inthe order listed when a touch or untouch event is received from thecontroller. The playback rate 870 controls how fast the action list isexecuted. The rate is entered in milliseconds. A zero playback rateexecutes the items as fast as possible while a non-zero playback insertsa delay of the specified amount between each action.

Referring now to FIG. 9, a screen shot of the action properties setupfor a Delay action 805 in accordance with an embodiment of the presentinvention is illustrated. Whenever the user clicks the Add to listbutton 865 while a delay action 805 is selected, the screen shown inFIG. 9 is activated. The user inserts the number of milliseconds todelay the action list prior to the execution of the next action on thelist. A delay action allows an action list to be paused. If certainactions take a long time, a delay can be used to give the action time toexecute.

Referring now to FIG. 10, a screen shot of the action properties for aDLLCall action 810 in accordance with an embodiment of the presentinvention is illustrated. When the user selects a DLLCall action 810 tobe added to the action list using the Add to list button 865, the actionproperties screen shown in FIG. 10 is activated. This action makes thespecified call to a dynamic link library (DLL). Such an action can beused by developers for more direct game integration. The dynamic linklibrary block 1005 is used to specify the location of the DLL that willbe called. Clicking the Browse button 1010 allows the user to browse forthe DLL. The Function name block 1015 specifies the exported functionname in the DLL to call. The parameters block 1020 allows the user tospecify the parameters to pass to the function in the DLL.

Referring now to FIG. 11, a screen shot of the action properties for anEnterString action 815 in accordance with an embodiment of the presentinvention is illustrated. The EnterString action 815 allows a string tobe entered as if it were entered on the keyboard. This saves effort inentering the string one key at a time. An optional <enter> key press canbe executed after the string if necessary. This action is useful forbroadcasting pre-generated messages such as “Cover me.” The string to beentered is typed into the String box 1105. The case of each letterentered is preserved. Depending on the speed of the computer and theresponsiveness of the game, a short delay is sometimes necessary betweeneach character. The delay that the program should wait between eachcharacter in the string is entered in milliseconds in the Characterdelay box 1110. If an <enter> key is necessary after the string isentered the Hit enter box 1115 is checked.

Referring now to FIG. 12, a screen shot of the action properties for theKeyboard action 820 in accordance with an embodiment of the presentinvention is illustrated. The key section 1205 contains a list of allthe keys on the keyboard that may be selected in a keyboard action. Akeyboard action simulates keyboard key presses or releases. Any key canbe put into the down state or the up state. The user usually selects akey from the block 1205 to be associated with this action. Foralphanumeric keys, the real key on the keyboard can be pressed to jumpto that key in the list. The keys are listed in alphabetical order. Thedirection of the key can be selected by clicking the Up selection 1210to simulate a release or the Down selection 1215 to simulate a key pressof the selected key. The key will remain in the down state until anaction is executed that puts it back into the up state.

Referring now to FIG. 13, a screen shot of the action properties for theLoadLayout action 825 in accordance with an embodiment of the presentinvention is illustrated. If there are too many controls/graphics to fiton one page, this option is used to implement a multi-screen setup. Itcan also be used to implement a generic layout navigator. The layout box1305 displays the currently selected layout. To choose another layout,the user selects the browse button 1310 to browse for another layout tobe loaded.

Referring now to FIG. 14, the action properties for a Mouse action 830in accordance with an embodiment of the present invention isillustrated. A mouse action simulates a mouse movement or button click.As with the keyboard, the mouse buttons will remain in the last executedposition whether it is up or down. The mouse action type block 1405 isused to select the desired mouse action. Left, middle, or right mousebutton events can be simulated as well as mouse movement. The Xcoordinate 1410 specifies the horizontal coordinate when a mousemovement is selected in block 1405. The coordinates are normalized to 0to 65535. This means that a coordinate of 0 will map to the left side ofthe screen and a coordinate of 65535 will map to the right side of thescreen. The Y coordinate 1415 specifies the vertical coordinate for amouse movement. The Y coordinate is also normalized to 0 to 65535. Thus,0 is mapped to the top of the screen and 65535 is mapped to the bottomof the screen.

Referring now to FIG. 15, a screen shot of the setup window for the gamecontroller 105 is illustrated. The Select a device block 1505 is used toselect the controller to be setup. Multiple controllers can be connectedto the same computer. The desired devices must be on and plugged in forthem to be listed in this area. The Select default layout block 1510 isused to specify the layout that will be loaded into the controller ifthe application tracker does not recognize the active application. TheSelect a program block 1515 is used to select a program or gameapplication that is to be associated with a layout file. The Setupprograms button 1520 is used to setup the program shortcuts so that thecontrol software can determine what application is running. This buttonis used to setup a list of known programs. The Select a layout block1525 is used to display the current layout associated with theapplication selected in the Select a program block 1515. The Browsebutton 1530 is used to browse the layout files for a particular layoutto be associated with the program selected in block 1515.

Referring now to FIG. 16, a screen shot of the options available for thecontrol software is illustrated. The control software tracks the activeapplication and loads the appropriate layout. The control software alsoshows up as an icon in the systems tray (the area on the start bar thatcontains the time). Right clicking on the icon will bring up the windowshown in FIG. 16. By default, the control software is placed in thestartup folder in the start menu so that it is executed whenever theoperating systems boots. To avoid automatic startup, the user may deletethe shortcut from the startup programs group. When the Activate layoutsbased on active application option 1605 is selected, the controlsoftware will track the active application and load the appropriatelayout. The user may also select the Load a specific layout option 1610to download a specific layout into the controller. This layout will thenbe used until it is changed by the user. The Setup application trackingoption 1620 allows setup of links from the application to the layouts.The links are used during application tracking to determine whichlayouts to load. The Close this program option 1625 closes the controlprogram for the duration of the Windows session.

The description of the present invention has been presented for purposesof illustration and description, but is not intended to be exhaustive orlimited to the invention in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the art. Theembodiment was chosen and described in order to best explain theprinciples of the invention and the practical application to enableothers of ordinary skill in the art to understand the invention forvarious embodiments with various modifications as are suited to theparticular use contemplated.

What is claimed is:
 1. A customizable input device for a computer, saidcustomizable input device comprising: a display device for displayingimages; a touchscreen device for receiving inputs from a user; amicrocontroller connected to said display device and said touchscreendevice for loading a plurality of images into said display device andreceiving inputs from said touchscreen device wherein saidmicrocontroller is configured to receive a plurality of image files fromsaid computer and wherein said microcontroller is configured to transmitan input from said user to said computer based on an area of saidtouchscreen device that is activated by said user wherein said inputcorresponds to a user-defined action to be executed by said computer;and an interface connected to said microcontroller adapted forcommunicating with said computer; wherein said customizable input deviceis adaptable for use with a plurality of applications on said computerwherein said user may customize said plurality of images for each ofsaid plurality of applications.
 2. The apparatus of claim 1 wherein saidtouchscreen device is a transparent touchscreen overlay.
 3. Theapparatus of claim 2 wherein said touchscreen device and said displaydevice are integrally connected such that said touchscreen deviceoverlays said display device.
 4. The apparatus of claim 1 wherein saidinterface is a serial cable adapted for connecting said microcontrollerto a uniform serial bus on said computer.
 5. The apparatus of claim 1wherein said plurality of images are displayed using a plurality ofbitmaps files.
 6. A computer system with an input device for controllingan application program running on said computer system, said computersystem comprising: a computer for running said application program; adisplay device for displaying a plurality of images received from saidcomputer; a touchscreen device for allowing a user to control saidapplication program wherein said touchscreen device overlays saiddisplay device; a microcontroller connected to said display device andsaid touchscreen device for interfacing with said computer wherein saidmicrocontroller loads said plurality of images onto said display deviceand transmits inputs from said touchscreen device to said computer; aninterface connecting said computer and said microcontroller for allowingsaid computer to communicate with said input device; and a memory meansfor storing said plurality of images and for storing a table associatinga user-defined action with an input area on said touchscreen devicewherein said computer retrieves said user-defined action from saidmemory means and executes said user-defined action when said input areais activated by said user; wherein said customizable input device isadaptable for use with a plurality of applications on said computerwherein said user may customize said plurality of images for each ofsaid plurality of applications.
 7. The computer system of claim 6further comprising: a touchscreen interface connected between saidmicrocontroller and said touchscreen device for allowing saidmicrocontroller to receive inputs from said touchscreen device; a videodriver connected between said microcontroller and said display devicefor allowing said microcontroller to display said plurality of images onsaid display device; and a video memory device connected to said videodriver for storing image data.
 8. The computer system of claim 6 whereinsaid memory means comprises a layout file.
 9. The computer system ofclaim 8 further comprising a layout editor for editing said layout filewherein said layout editor allows said user to choose and arrange saidplurality of images as they are to be displayed on said display deviceand wherein said layout editor allows said user to associate auser-defined action with at least one of said plurality of images. 10.The computer system of claim 9 wherein said input area on saidtouchscreen device overlays one of said plurality of images displayed onsaid display device.
 11. The computer system of claim 6 wherein saiduser-defined action comprises a plurality of actions.
 12. The computersystem of claim 6 wherein said interface is a serial cable connected toa uniform serial bus on said computer.
 13. The computer system of claim6 wherein said touchscreen device is transparent and said display deviceis integrally connected to said touchscreen device such that saidtouchscreen device overlays said display device.
 14. The computer systemof claim 13 wherein said display device is a liquid crystal display andwherein said touchscreen device is a passive resistive touch sensitivepanel.
 15. The computer system of claim 6 wherein said computer is apersonal computer using a Windows operating system.
 16. The computersystem of claim 6 wherein said application program is a game.
 17. Acomputer system with an input device for controlling an applicationprogram running on said computer system, said computer systemcomprising: a computer for running said application program; a displaydevice for displaying a plurality of images received from said computer;a touchscreen device for allowing a user to control said applicationprogram wherein said touchscreen device overlays said display device; amicrocontroller connected to said display device and said touchscreendevice for interfacing with said computer wherein said microcontrollerloads said plurality of images onto said display device and transmitsinputs from said touchscreen device to said computer; an interfaceconnecting said computer and said microcontroller for allowing saidcomputer to communicate with said input device; and a memory means forstoring said plurality of images and for storing a table associating auser-defined action with an input area on said touchscreen devicewherein said computer retrieves said user-defined action from saidmemory means and executes said user-defined action when said input areais activated by said user; wherein said user-defined action comprises anaction selected from the group consisting of a delay, an external callof a dynamic link library, a string entry, a keyboard entry, a load of alayout, a mouse input, and an opening of a uniform resource locator;wherein said customizable input device is adaptable for use with aplurality of applications on said computer wherein said user maycustomize said plurality of images for each of said plurality ofapplications.
 18. A computer system with an input device for controllingan application program running on said computer system, said computersystem comprising: a computer for running said application program; adisplay device for displaying a plurality of images received from saidcomputer; a touchscreen device for allowing a user to control saidapplication program wherein said touchscreen device overlays saiddisplay device; a microcontroller connected to said display device andsaid touchscreen device for interfacing with said computer wherein saidmicrocontroller loads said plurality of images onto said display deviceand transmits inputs from said touchscreen device to said computer; aninterface connecting said computer and said microcontroller for allowingsaid computer to communicate with said input device; and a memory meansfor storing said plurality of images and for storing a table associatinga user-defined action with an input area on said touchscreen devicewherein said computer retrieves said user-defined action from saidmemory means and executes said user-defined action when said input areais activated by said user; wherein said user-defined action comprises aplurality of actions; and wherein said plurality of actions are chosenfrom the group consisting of a delay, a dynamic link library call, astring entry, a keyboard entry, a load of a layout, a mouse input, andan opening of a uniform resource locator; wherein said customizableinput device is adaptable for use with a plurality of applications onsaid computer wherein said user may customize said plurality of imagesfor each of said plurality of applications.
 19. A method for controllingan application program running on a computer system, said methodcomprising: downloading a layout file to an input device; displaying animage from said layout file on said input device using a display device;sensing inputs from a user on said input device wherein said inputs aresensed using a touchscreen panel; responsive to sensing an input by saiduser in a bounding region on said touchscreen panel, determining auser-defined action associated with said bounding region using saidlayout file; and responsive to determining a user-defined action,performing said user-defined action; wherein said customizable inputdevice is adaptable for use with a plurality of applications on saidcomputer wherein said user may customize said plurality of images foreach of said plurality of applications.
 20. The method of claim 19further comprising: monitoring for a second application program becomingan active program; and responsive to said second application programbecoming said active program, downloading a second layout file to saidinput device such that said second layout file is substituted for saidlayout file.
 21. The method of claim 19 further comprising downloadingan updated layout file to said input device when said layout file ismodified.
 22. The method of claim 19 wherein said application program isa game.
 23. The method of claim 19 wherein a plurality of layout filesare stored on said computer system for use with a plurality ofapplication programs.
 24. A computer program product in a computerreadable medium for controlling an application program running on acomputer system, said computer program product comprising: firstinstructions for downloading a layout file to an input device; secondinstructions for displaying an image from said layout file on said inputdevice using a display device; third instructions for sensing inputsfrom a user on said input device wherein said inputs are sensed using atouchscreen panel; fourth instructions, responsive to sensing an inputby said user in a bounding region on said touchscreen panel, fordetermining a user-defined action associated with said bounding regionusing said layout file; and fifth instructions, responsive todetermining a user-defined action, for performing said user-definedaction; wherein said customizable input device is adaptable for use witha plurality of applications on said computer wherein said user maycustomize said plurality of images for each of said plurality ofapplications.
 25. The computer program product of claim 24 furthercomprising: instructions for monitoring for a second application programbecoming an active program; and instructions, responsive to said secondapplication program becoming said active program, for downloading asecond layout file to said input device such that said second layoutfile is substituted for said layout file.
 26. The computer programproduct of claim 24 further comprising instructions for downloading anupdated layout file to said input device when said layout file ismodified.